In many areas of science and engineering, such as but not limited to communications, it is desirable to solve a system of linear equations, e.g., to solve Ax=b. Solving such equations, using methods such as inverting matrix A (that is, to provide matrix A′) can be performed either directly or iteratively. However, many conventional processes either require undesirable computational resources, or may not arrive at a useful solution. Often, such solutions are impractical in real-world implementations.
As a nonlimiting example, a signal may be received by a communications device, where the signal corresponds to a data vector. This data vector, in turn, is based on at least a message vector, a data matrix (e.g., due to known communication techniques), and an amount of noise. To determine the message vector from the received data vector, a matrix inversion or similar method can be performed on the received signal. However, for large, sparse, and/or amorphous data matrices, direct methods are impractical due to the need for excessive row reordering operations. Further, the iterative approaches may converge asymptotically to the solution, and thus may converge slowly or not at all.